home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / ada / c01lab1.zip / ADAWKBK / SOL4-4.ADA < prev    next >
Text File  |  1992-11-11  |  994b  |  39 lines

  1. -- Problem 4.4
  2. -- by Rick Conn
  3. with Text_IO;
  4. procedure Main is
  5.  
  6.   task type Display is
  7.     entry Start (Task_Name : in STRING;
  8.                  Delay_Amt : in DURATION);
  9.   end Display;
  10.  
  11.   task body Display is
  12.     T_Name       : STRING(1..80);
  13.     TNLast       : NATURAL;
  14.     Delay_Amount : DURATION;
  15.   begin
  16.     accept Start (Task_Name : in STRING;
  17.                   Delay_Amt : in DURATION) do
  18.       T_Name (1..Task_Name'LENGTH) := Task_Name;
  19.       TNLast                       := Task_Name'LENGTH;
  20.       Delay_Amount                 := Delay_Amt;
  21.       Text_IO.Put_Line ("Task " & T_Name(1..TNLast) & " starting");
  22.     end Start;
  23.     delay Delay_Amount;
  24.     Text_IO.Put_Line ("Task " & T_Name(1..TNLast) & " ending");
  25.   end Display;
  26.  
  27. begin -- Main
  28.  
  29.   declare
  30.     Tasks : array (1..5) of Display;
  31.   begin
  32.     for I in Tasks'RANGE loop
  33.       Tasks(I).Start
  34.           ("Task" & INTEGER'IMAGE(I), DURATION(Tasks'LAST+1 - I));
  35.     end loop;
  36.   end;
  37.  
  38. end Main;
  39.